#include "photo.h"
#include "ui_photo.h"

photo::photo(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::photo)
{
    ui->setupUi(this);
    photo_init();
    // connect(timer,SIGNAL(timeout()),this,SLOT(slot_timeout()));
    // timer->start(1000);
}

photo::~photo()
{
    delete ui;
}

void photo::photo_init()
{
    dir.setPath(photodir); // 设置目录路径
    dir.setNameFilters(QStringList() << "*.jpg"); // 文件名过滤，只获取jpg文件
    dir.setSorting(QDir::Time | QDir::Reversed);  // 根据修改时间进行排序，逆序排列
    file_list = dir.entryList(); // 获取文件列表

    qDebug()<<"refresh_filelist:index = "<<index;
    qDebug()<<"refresh_filelist:size = "<<file_list.size();
    if(file_list.size() > 0){
        current_index = index;
        if(current_index >= file_list.size()){
            current_index = 0;
        }

        QString file_path = dir.filePath(file_list[current_index]); // 获取文件路径
        qDebug()<<"file_path:"<<file_path;

        QImageReader reader(file_path);
        reader.setFormat(QByteArray("RGB16"));
        QImage image = reader.read();// 创建图片对象
        ui->label->setPixmap(QPixmap::fromImage(image)); // 在控件上显示图片

    }else{
        ui->label->setText("无图片");
    }
}

void photo::photoget()
{

    // file_list = photodir.entryList();
}

void photo::on_pushButton_clicked()
{
    if(file_list.size() > 0){
        current_index--; // 更新当前显示的文件索引
        if (current_index < 0) {
            current_index = file_list.size()-1;
        }

        QString file_path = dir.filePath(file_list[current_index]); // 获取文件路径
        qDebug()<<"file_path:"<<file_path;

        QImageReader reader(file_path);
        reader.setFormat(QByteArray("RGB16"));
        QImage image = reader.read();// 创建图片对象
        ui->label->setPixmap(QPixmap::fromImage(image)); // 在控件上显示图片


    }
}


void photo::on_pushButton_2_clicked()
{
    if(file_list.size() > 0){
        current_index++; // 更新当前显示的文件索引
        if (current_index >= file_list.size()) {
            current_index = 0;
        }

        QString file_path = dir.filePath(file_list[current_index]); // 获取文件路径
        qDebug()<<"file_path:"<<file_path;

        QImageReader reader(file_path);
        reader.setFormat(QByteArray("RGB16"));
        QImage image = reader.read();// 创建图片对象
        ui->label->setPixmap(QPixmap::fromImage(image)); // 在控件上显示图片


    }
}

void photo::photoupdate()
{
    dir.setPath(photodir); // 设置目录路径
    dir.setNameFilters(QStringList() << "*.jpg"); // 文件名过滤，只获取jpg文件
    dir.setSorting(QDir::Time | QDir::Reversed);  // 根据修改时间进行排序，逆序排列
    file_list = dir.entryList(); // 获取文件列表
    // if (current_index >= file_list.size()) {
    //     current_index = 0;
    // }

    // QString file_path = dir.filePath(file_list[current_index]); // 获取文件路径
    // qDebug()<<"file_path:"<<file_path;

    // QImageReader reader(file_path);
    // reader.setFormat(QByteArray("RGB16"));
    // QImage image = reader.read();// 创建图片对象
    // ui->label->setPixmap(QPixmap::fromImage(image));
}


void photo::on_pushButton_3_clicked()
{
        QString file_path = dir.filePath(file_list[current_index]); // 获取文件路径

        // 创建一个 QFile 对象并打开文件
        QFile file(file_path);
        // 检查文件是否存在
        if (!file.exists()) {
            qDebug() << "The file does not exist:" << file_path;
            return;
        }

        // 删除文件
        bool success = file.remove();
        if (success) {
            qDebug() << "File deleted successfully:" << file_path;
            //显示下一张,因为已经删掉了,这个方法内会重新获取列表,所以还是传这个current_index
            dir.setPath(photodir); // 设置目录路径
            dir.setNameFilters(QStringList() << "*.jpg"); // 文件名过滤，只获取jpg文件
            dir.setSorting(QDir::Time | QDir::Reversed);  // 根据修改时间进行排序，逆序排列
            file_list = dir.entryList();
            if (current_index >= file_list.size()) {
                current_index = 0;
            }
            QString file_path = dir.filePath(file_list[current_index]); // 获取文件路径
            qDebug()<<"file_path:"<<file_path;

            QImageReader reader(file_path);
            reader.setFormat(QByteArray("RGB16"));
            QImage image = reader.read();// 创建图片对象
            ui->label->setPixmap(QPixmap::fromImage(image));
        } else {
            qDebug() << "Failed to delete the file:" << file_path;
        }

}

